#include "clientwidget.h"
#include "ui_clientwidget.h"
#include<QHostAddress>
#include"clientfile.h"
#include"serverfile.h"
#include <QMessageBox>

ClientWidget::ClientWidget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::ClientWidget)
{
    ui->setupUi(this);

    //将进入服务器的标志位置为false
    status = false;
    port = 8888;
    ui->porttext->setText(QString::number(port));

    serverIP = new QHostAddress();

    //未连接内不能发送信息
    ui->sendButton->setEnabled(false);



//    tcpsocket=NULL;

//    //分配空间，指定父对象
//    tcpsocket=new QTcpSocket(this);

//    connect(tcpsocket,&QTcpSocket::connected,[=]()
//    {

//        ui->readtext->setText("成功和服务器建立连接");
//    }
//    );

//    connect(tcpsocket,&QTcpSocket::readyRead,[=](){

//        //获取对方发送内容
//        QByteArray array=tcpsocket->readAll();
//        //追加到编辑区中
//        ui->readtext->append(array);

//    });



}

ClientWidget::~ClientWidget()
{
    delete ui;
}

void ClientWidget::on_connectButton_clicked()  //连接
{

    //首先判断这个用户是不是在服务器中
    if(status == false) { //不在服务器中就和服务器进行连接
        QString ip = ui->IPtext->text();

        if(!serverIP->setAddress(ip)) {   //判断IP地址是否可以被正确解析
            QMessageBox::warning(NULL, " 错误 ", " IP地址不正确 ");
            return;
        }
     if(ui->nametext->text() == "") {
            QMessageBox::warning(NULL, " 错误 ", " 用户名不能为空 ");
            return;
        }
     userName = ui->nametext->text();

     tcpsocket = new QTcpSocket(this);
     tcpsocket->connectToHost(*serverIP, port);
     //connect(tcpsocket, &QTcpSocket::connected, this, &ClientWidget::);

    }




//    //获取服务器ip和端口
//    QString ip=ui->IPtext->text();
//    qint16 port=ui->porttext->text().toInt();

//    //主动和服务器建立连接
//    tcpsocket->connectToHost(QHostAddress(ip),port);
}


void ClientWidget::on_sendButton_clicked()
{
    //获取编辑框内容
    QString str=ui->writetext->toPlainText();

    //发送数据
    tcpsocket->write(str.toUtf8().data());

}

void ClientWidget::on_closeButton_clicked()
{
    //主动断开连接
    if(tcpsocket==NULL) return;

    tcpsocket->disconnectFromHost();
    ui->readtext->setText("和服务器断开连接");
    tcpsocket->close();
    tcpsocket=NULL;

}


void ClientWidget::on_pushButton_clicked()
{
    clientfile *c=new clientfile;
    c->show();

    Serverfile *s=new Serverfile;
    s->show();
}


void ClientWidget::on_pushButton_pressed()
{

}

